package cl.indumotora.induapprecepcion.app;

import java.io.File;

import cl.indumotora.induapprecepcion.db.ControladoraDB;
import cl.indumotora.induapprecepcion.modelo.Evento;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;

public class InspeccionVehiculoEventoModificacion extends Activity 
{
	String ID = "";
	ControladoraDB db = new ControladoraDB();
	Spinner cmbParteVehiculoModificacion;
	RadioGroup rdgDefectoModificacion;
	Button btnCamaraModificacion;
	Button btnModificarEvento;
	ImageView imgEventoModificacion;
	EditText txtObservacionEventoModificacion;
	String tipoFoto = "";
	int tipo;
	
	Evento evento;
	String rutaImagen;	

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_inspeccion_vehiculo_evento_modificacion);
		
		ObtenerControles();
		
		Bundle extras = getIntent().getExtras(); 
		ID = extras.getString("ID");
		
		Cursor cursor = ObtenerEventoPorID(ID);
		//System.out.println("SIZE CURSOR: " + cursor.getCount());
		
		evento = ObtenerEventoDelCursor(cursor);
		rutaImagen = evento.getEventoRutaImagen();
		
		System.out.println("ID: " + ID);
		System.out.println("PARTE VEHICULO: " + evento.getEventoParteAuto());
		System.out.println("DEFECTO: " + evento.getEventoDefecto());
		System.out.println("RUTA IMAGEN: " + evento.getEventoRutaImagen());
		System.out.println("ZONA VEHICULO: " + evento.getEventoZonaVehiculo());
		
		tipo = evento.getEventoZonaVehiculo();
		int tipoArray = 0;
		if(tipo==1) tipoArray = R.array.array_auto_frontal;
		else if (tipo==2) tipoArray = R.array.array_auto_izquierdo;
		else if (tipo==3) tipoArray = R.array.array_auto_derecho;
		else if (tipo==4) tipoArray = R.array.array_auto_trasero;
		
		//SE LLENA SPINNER
		ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, tipoArray, android.R.layout.simple_spinner_item);
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		cmbParteVehiculoModificacion.setAdapter(adapter);
		
		//SE SETEA VALOR DE EVENTO A SPINNER
		ArrayAdapter myAdap = (ArrayAdapter) cmbParteVehiculoModificacion.getAdapter(); 
		int spinnerPosition = myAdap.getPosition(evento.getEventoParteAuto());
		cmbParteVehiculoModificacion.setSelection(spinnerPosition);
		
		//SE SETEA VALOR A RADIOGROUP
		int count = rdgDefectoModificacion.getChildCount();		   
		
		for (int i = 0; i < count; i++) 
		{
	        View o = rdgDefectoModificacion.getChildAt(i);
	        if (o instanceof RadioButton) 
	        {
	            RadioButton radioBtn =  (RadioButton)o;
	            String radioTexto = radioBtn.getText().toString();
	            String defectoTexto = evento.getEventoDefecto();
	            
	            if(radioTexto.equals(defectoTexto))
	            {
	            	radioBtn.setChecked(true);
	            	break;
	            }
	         }
	    }
		
		//SE CARGA IMAGEN
		File imgFile = new  File(evento.getEventoRutaImagen());
		if(imgFile.exists()){

		    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
		    imgEventoModificacion.setImageBitmap(myBitmap);
		}
		
		//SE SETEA CAMPO OBSERVACION
		txtObservacionEventoModificacion.setText(evento.getEventoObservacion());
		
		//BOTON MODIFICAR EVENTO
		btnModificarEvento.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {				
				ModificarEvento(Integer.parseInt(ID), evento);
				finish();
			}
		});
	}
	
	private Cursor ObtenerEventoPorID(String ID)
	{
		Cursor cursor = db.ObtenerEventoPorID(this, ID);
		return cursor;
	}
	
	private Evento ObtenerEventoDelCursor(Cursor cursor)
	{
		try
		{
			Evento evento = new Evento();
			
	    	if(cursor != null)
			{    		
	    		evento.setEventoInspeccionId(Integer.parseInt(cursor.getString(1)));
	    		evento.setEventoParteAuto(cursor.getString(3));
	    		evento.setEventoDefecto(cursor.getString(2));
	    		evento.setEventoRutaImagen(cursor.getString(4));
	    		evento.setEventoZonaVehiculo(Integer.parseInt(cursor.getString(5)));	
	    		evento.setEventoObservacion(cursor.getString(6));
			}
	    	
	    	return evento;
		}
		catch(Exception e)
		{
			e.printStackTrace();
			return null;
		}
	}
	
	private void ObtenerControles()
	{
		cmbParteVehiculoModificacion = (Spinner)findViewById(R.id.cmbParteAutoModificacion);
		rdgDefectoModificacion = (RadioGroup)findViewById(R.id.rdgGrupoModificacion);
		btnCamaraModificacion = (Button)findViewById(R.id.btnFotoEventoModificacion);
		btnModificarEvento = (Button)findViewById(R.id.btnGuardarEventoModificacion);
		imgEventoModificacion = (ImageView)findViewById(R.id.imgImagenEventoModificacion);
		txtObservacionEventoModificacion = (EditText)findViewById(R.id.txtObservacionEventoModificacion);
	}
	
	private void ModificarEvento(int id, Evento evento)
	{
		evento.setEventoInspeccionId(1);
		int selectedId = rdgDefectoModificacion.getCheckedRadioButtonId();
        RadioButton rdDefecto = (RadioButton) findViewById(selectedId);
        evento.setEventoDefecto(rdDefecto.getText().toString());
        evento.setEventoParteAuto(cmbParteVehiculoModificacion.getSelectedItem().toString());
        evento.setEventoRutaImagen(rutaImagen);
        evento.setEventoZonaVehiculo(tipo);
        evento.setEventoObservacion(txtObservacionEventoModificacion.getText().toString());
        
        db.ModificarEvento(this, Integer.parseInt(ID), evento);
	}
	
}
